home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Atari Mega Archive 1
/
Atari Mega Archive - Volume 1.iso
/
mint
/
filesys
/
ramfs.zoo
/
lisez.moi
< prev
next >
Wrap
Text File
|
1993-09-03
|
3KB
|
55 lines
RAMFS.XFS: Un ramdisk de taille variable pour MiNT
Version 1.4 -- Septembre 1993
Dans la documentation de MiNT, Eric Smith indiquait que le chargement
dynamique des systemes de fichiers devrait permettre de programmer
simplement un disque virtuel de taille variable. Bien que ce soit
effectivement la chose la plus simple que l'on puisse imaginer, je n'ai
trouve ca nulle part; alors, je l'ai ecrit.
Ce disque virtuel alloue dynamiquement la memoire dont il a besoin, et
pas davantage. Comme on peut s'y attendre, il fonctionne mal avec des
programmes accaparant toute la memoire; en particulier, si vous voulez
l'utiliser comme repertoire temporaire pour le GCC, commencez par
reduire la taille de la pile pour gcc-cpp, gcc-cc1, gcc-as et gcc-ld:
une pile de 128Ko semble raisonnable.
Ce disque s'installe en U:\ram (ceci peut etre modifie en corrigeant la
ligne definissant RAM_NAME dans ramfs.c) si vous avez MiNT 1.08 ou une
version plus recente; sinon, il s'installera en tant que drive R.
Prenez garde dans ce cas, car les fonctions du Bios telles que getbpb()
et rwabs() donneront surement des resultats etranges sur ce drive. Le
systeme de fichiers est "case-insensitive" (la casse des caracteres est
preservee, mais ignoree), et les noms de fichiers sont limites a 35
caracteres (c'est la constante RAMFILE_MAX); les bits rwx, ainsi que
l'uid et le gid du proprietaire sont pris en compte. Un fichier ne
retient que sa date de derniere modification, pas les dates de creation
ni de dernier acces. On peut definir des liens symboliques; il n'y a
pas de liens physiques. Le verrouillage des fichiers n'est pas
implemente, mais les modes de partage le sont. Il est possible de
deplacer un fichier, repertoire ou lien d'un repertoire vers un autre.
Il est possible de "detruire" un fichier ouvert; il sera alors
immediatement ote du repertoire, mais ne sera effectivement detruit que
lorsque le fichier aura ete entierement referme.
Un seek() peut aller au-dela de la fin du fichier. Par ailleurs, il
devrait etre possible de faire un Dgetcwd() sur un path de longueur
arbitraire. Ces deux modifications n'ont pas ete vraiment testees, donc
soyez prudents.
Les resultats renvoyes par Dfree() ne doivent pas etre trop pris au
serieux, a cause des problemes de fragmentation de la memoire.
Ce programme est en "postcardware"; si vous trouvez qu'il vous plait,
envoyez-moi une carte postale a l'adresse indiquee ci-dessous. Pour les
comptes-rendus de bugs, utilisez plutot l'une des adresses
electroniques.
Thierry BOUSCH Internet: bousch@suntopo.matups.fr
44 Boulevard du Temple Thierry.Bousch@linn.fidonet.org
75011 PARIS
FRANCE Fidonet: Thierry.Bousch @ 2:320/100